package br.com.mundoj.subscription.client;

import com.google.gwt.core.client.JavaScriptObject;

/*
 * http://cep.republicavirtual.com.br/web_cep.php?formato=javascript
 */
public final class LocationData extends JavaScriptObject implements ILocationData {
	public static String emulaCEP = 
		"var resultadoCEP = {" +
		"'uf' : 'RS', " +
		"'cidade' : 'Porto%20Alegre'," +
		"'bairro' : 'Passo%20D%27Areia'," +
		"'tipo_logradouro' : 'Avenida'," +
		"'logradouro' : 'Assis%20Brasil'," +
		"'resultado' : '1'," +
		"'resultado_txt' : 'sucesso%20-%20cep%20completo' }";

	protected LocationData() { }

	public native String state() /*-{
		return this.uf;
	}-*/;

	public native String city() /*-{
		return unescape(this.cidade);
	}-*/;

	public native String neighborhood() /*-{
		return unescape(this.bairro);
	}-*/;

	public native String address() /*-{
		return this.tipo_logradouro + ' ' + unescape(this.logradouro);
	}-*/;
	
	public native String resultCode() /*-{
		return this.resultado;
	}-*/;

	public native String resultMessage() /*-{
		return unescape(this.resultado_t);
	}-*/;
	
	public static native LocationData parse(String jsResponse) /*-{
		eval(jsResponse);
    	return resultadoCEP;
	}-*/;

	public static native LocationData get() /*-{
    	return resultadoCEP;
	}-*/;
	
	public static native void test() /*-{
		window.alert("void");
	}-*/;
}